package com.example.demo.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 *  1. 打印日志.
 *
 *  2. 日志的级别分为：
 *  trace：微量，少许的意思，级别最低；
 *  debug：需要调试时候的关键信息打印；
 *  info：普通的打印信息（默认⽇志级别）；
 *  warn：警告，不影响使⽤，但需要注意的问题；
 *  error：错误信息，级别较⾼的错误⽇志信息；
 *  fatal：致命的，因为代码异常导致程序退出执⾏的事件.
 *  ⽇志级别配置只需要在配置⽂件中设置“logging.level”配置项即可.
 *
 */
@RequestMapping("/user")
@Controller
@ResponseBody // 用来设置当前类所有方法返回的是数据而非页面.
public class UserController {
    // 在程序中打印(自定义)日志
    // 1. 得到日志对象
    // Logger, LoggerFactory 均来自 org.slf4j 包下的.
    public static final Logger logger = LoggerFactory.getLogger(UserController.class);

    // 访问url: http://localhost:8080/user/hi
    @RequestMapping("/hi")
    public String sayHi() {
        // 写日志.
        // 2. 使用日志对象的内置方法来打印日志.
        logger.trace("我是 trace, 痕迹日志"); // 1
        logger.debug("我是 debug, 调试日志"); // 2
        logger.info("我是 info, 普通日志");   // 3
        logger.warn("我是 warn, 警告日志");   // 4
        logger.error("我是 error, 错误日志"); // 5
        // 程序只会打印和设置的日志级别相同或者大于设置的日志级别的日志.

        return "Hi, Spring Boot.";
    }
}
